#ifndef GOLOMBCODE_H
#define GOLOMBCODE_H

#include "../Base.h"
#include "../container/BitArray.h"


class GolombCode
{
public:
    enum GolombType{
        Golomb_Normal = 0,
        Golomb_Rice,
        Golomb_Exp
    };

    virtual GolombCode();

    virtual CBitArray& code(size_t value);
    virtual size_t decode(CBits &CBitArray);


protected:
    static CMap<size_t, *CBitArray> st_GolombMap;

    GolombType m_Tpye;
};

#endif // GOLOMBCODE_H
